// components/flowBtnGroup.js
const app = getApp();
const network = require("../utils/network");
const util = require("../utils/util");
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        flowType: { // 流程类型
            type: Number,
            value: null
        },
        detailId: { // 数据id
            type: Number,
            value: null
        },
        flowStatus: { // 流程状态
            type: Number,
            value: -1
        },
        hasCheckHistory: { // 含有审批历史
            type: Boolean,
            value: true
        },
        canCheck: { // 当前人是否可审核
            type: Boolean,
            value: false
        },
        isApplyer: { // 当前人是否为提交人
            type: Boolean,
            value: false
        },
        isNewData: { // 是新数据，即肯定显示保存、提交
            type: Boolean,
            value: false
        },
        onlyShowBack: { // 仅显示返回按钮
            type: Boolean,
            value: false
        },
        hasConfirmDialog: { // 是否弹框确认
            type: Boolean,
            value: true
        },
        backBtnText: { // 返回按钮文本
            type: String,
            value: '返回'
        },
        submitBtnText: { // 提交按钮文本
            type: String,
            value: '提交'
        },
        saveBtnText: { // 保存按钮文本
            type: String,
            value: '保存'
        },
        passBtnText: { // 通过按钮文本
            type: String,
            value: '通过'
        },
        returnBackBtnText: { // 驳回按钮文本
            type: String,
            value: '驳回'
        },
        deleteBtnText: { // 删除按钮文本
            type: String,
            value: '删除'
        },
        actualDeleteBtnText: { // 彻底删除按钮文本
            type: String,
            value: '彻底删除'
        },
        dialogConfirmPassBtnText: { // 意见弹框，通过按钮文本
            type: String,
            value: '通过'
        },
        dialogConfirmReturnBackBtnText: { // 意见弹框，驳回按钮文本
            type: String,
            value: '驳回'
        }
    },

    observers: {
        'detailId': function (detailId) {
            if (detailId > 0) {
                this.getHisList({detailId})
            }
        },
    },

    /**
     * 组件的初始数据
     */
    data: {
        checkHistoryShow: false,
        checkHistoryList: [],
        confirmConfig: {
            type: '',
            title: '确认',
            message: ''
        },
        listenOpinion: ''
    },

    lifetimes: {
        attached() {
            //this.getHisList({detailId:this.properties.detailId})
        }
    },

    /**
     * 组件的方法列表
     */
    methods: {
        callbackBeforeConfirm() { // 仅针对提交和保存2个动作，返回true则调起弹框，返回false则无任何动作
            console.log('弹框之前的回调');
            return true;
        },

        getHisList({detailId}) {
            const _this = this
            return new Promise(async (resolve, reject) => {
                network.GET({
                    uri: app.api.flowCheckHistory,
                    params: {data_id: detailId, flow_type: _this.properties.flowType},
                    success(res) {
                        console.log('res', res);
                        _this.setData({
                            checkHistoryList: res.data
                        })
                        resolve(res)
                    },
                    fail(err) {
                        console.log('err', err);
                        reject()
                    }
                })
            })
        },
        showCheckHistoryPop() {
            this.setData({
                checkHistoryShow: true
            })
        },
        onCloseCheckHistory() {
            this.setData({
                checkHistoryShow: false
            })
        },

        confirmed() {
            this.triggerEvent(this.data.confirmConfig.type, this.data.listenOpinion || '');
        },
        back() {
            wx.navigateBack({
                delta: 1
            });
        },
        onTapBtnConfirm({type, msg}) {
            const _this = this;
            _this.setData({
                'confirmConfig.type': type,
                'confirmConfig.message': msg
            }, function () {
                _this.selectComponent('.flow-confirm-dialog').show();
            })
        },
        submit() {
            const callbackBefore = this.callbackBeforeConfirm();

            if (!!callbackBefore && !!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'submit',
                msg: '您确认要提交？'
            });
        },
        save() {
            const callbackBefore = this.callbackBeforeConfirm();
            console.log(callbackBefore)
            if (!!callbackBefore && !!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'save',
                msg: '您确认要保存？'
            });
        },
        pass() {
            if (!!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'pass',
                msg: '您确认要通过？'
            });
        },
        returnBack() {
            if (!!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'returnBack',
                msg: '您确认要退回？'
            });
        },
        del() {
            if (!!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'del',
                msg: '您确认要删除？'
            });
        },
        actDel() {
            if (!!this.properties.hasConfirmDialog) this.onTapBtnConfirm({
                type: 'actDel',
                msg: '您确认要彻底删除？'
            });
        }
    }
})
